Kotlin Initializer
keywordとしては、lateinit init{}
初期化は、constructorでオブジェクトが生成された後、プロパティが設定された後に、処理されるもの?
lateinit
why: プロパティはInitializeの前に宣言の必要があるが、後付で値を代入してプロパティ初期化をしたい。
how: lateinit var hello = "aaaa"
具体的には:
アプリ側でなく、フレームワーク(Androidのsystem service?)で生成されたオブジェクトで、
callbackだけを実装するパターンがある。
このような状況でも、初期化時にするような操作、nullを許容しないプロパティを設定したい。
初期化を遅らせる? インスタンス生成自体を、フレームワーク側で? compile時に、コード解析してするのか?
init{}
lateinitは遅延する?変数宣言。blockのinitはinitializeをする。
why: プロパティを設定したあとに、そのプロパティで何かしたい?
testとかに使える?